﻿using Learun.Util;
using System.Collections.Generic;

namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
    /// <summary>
    /// 版 本 PIT-ADMS V7.0.3 敏捷开发框架
    /// Copyright (c) 2013-2018 Hexagon PPM
    /// 创 建：超级管理员
    /// 日 期：2022-01-30 15:57
    /// 描 述：图纸文件
    /// </summary>
    public interface ec_drawing_fileIBLL
    {
        #region 获取数据

        /// <summary>
        /// 获取列表数据
        /// <summary>
        /// <returns></returns>
        IEnumerable<ec_drawing_fileEntity> GetList(string queryJson, string engineDataID = "", Pagination pagination = null);
        /// <summary>
        /// 获取实体数据
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        ec_drawing_fileEntity GetEntity(string keyValue, string ProjectId);
        #endregion

        #region 提交数据
        /// <summary>
        /// 删除实体数据
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        void DeleteEntity(string keyValue, string ProjectId);
        /// <summary>
        /// 逻辑删除实体数据
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        void LogicDelete(string keyValue, string ProjectId);
        /// <summary>
        /// 还原逻辑删除实体数据
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        void RepeatLogicDelete(string keyValue, string ProjectId);
        /// <summary>
        /// 保存实体数据（新增、修改）
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        void SaveEntity(string keyValue, ec_drawing_fileEntity entity, string ProjectId);

        /// <summary>
        /// 新增
        /// <summary>
        /// <returns></returns>
        void InertEntity(ec_drawing_fileEntity entity, string ProjectId);
        /// <summary>
        /// 编辑
        /// <summary>
        /// <returns></returns>
        void EditEntity(ec_drawing_fileEntity entity, string ProjectId);

        /// <summary>
        /// 检出
        /// <summary>
        /// <returns></returns>
        void CheckOutDrawingFile(string drawingFileID, string ProjectId);
        /// <summary>
        /// 检入
        /// <summary>
        /// <returns></returns>
        void CheckInDrawingFile(string drawingFileID, string remark, string folderId, string fileMD5, string ProjectId, string UsersNotified);
        /// <summary>
        /// 释放
        /// <summary>
        /// <returns></returns>
        void FreeDrawingFile(string drawingFileID, string ProjectId);
        /// <summary>
        /// 发布
        /// <summary>
        /// <returns></returns>
        void PublishDrawingFile(string drawingFileID, string remark, string ProjectId);
        /// <summary>
        /// 修订
        /// <summary>
        /// <returns></returns>
        void ModifyDrawingFile(string drawingFileID, string fileVersion, string ProjectId);
        /// <summary>
        /// 图纸导入  类似于复制的功能
        /// <param name="drawingCatalogueID">图纸目录ID</param>
        /// <param name="strEntity">包含DrawingFileID和ProjectId</param>
        /// <summary>
        /// <returns></returns>
        string SaveSelectData(string drawingCatalogueID, string ProjectId, string strEntity);
        /// <summary>
        /// 修改集合数据,新增附件数据集合
        /// <summary>
        /// <returns></returns>
        void SaveDataAndAnnexes(string ProjectId);
        #endregion

    }
}
